/*
 * @description: 图表基础配置,图表的公用方法
 * @fileName: charBase.ts
 * @params
 * @author: lxx
 * @date: 2025-04-16 16:27:00
 * @version: V1.0.0
 */
import * as echarts from 'echarts'
import { LineChart } from './charTypes'
export const ChartPropsDefault = {
  width: '100%',
  height: '100%',
  // 边距
  grid: () => {
    return {
      top: '20px',
      right: '15px',
      bottom: '20px',
      left: '45px'
    }
  },
  chartType: LineChart,
  xAxisData: () => ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
  chartData: () => [
    { value: 305, name: '1月' },
    { value: 735, name: '2月' },
    { value: 580, name: '3月' },
    { value: 484, name: '4月' },
    { value: 300, name: '5月' },
    { value: 200, name: '6月' },
    { value: 135, name: '7月' },
    { value: 500, name: '8月' },
    { value: 610, name: '9月' },
    { value: 335, name: '10月' },
    { value: 335, name: '11月' },
    { value: 335, name: '12月' }
  ]
}

// 生成随机HEX颜色
export const getRandomColor = () => {
  return (
    '#' +
    Math.floor(Math.random() * 16777215)
      .toString(16)
      .padStart(6, '0')
  )
}
// 默认主体颜色
export const getBaseColor = () => {
  return '#7cd3e1'
}

/**
 *
 * @param color 主体颜色
 * @param index 当前图标项索引
 * @returns
 */
export const getItemColor = (color: string | string[] | undefined, index: number) => {
  let color1 = getRandomColor()
  let color2 = getRandomColor()
  return color
    ? Array.isArray(color)
      ? color[index]
      : color
    : new echarts.graphic.LinearGradient(0, 0, 0, 1, [
        { offset: 0, color: color1 },
        { offset: 1, color: color2 }
      ])
}
